package com.cskaoyan.javse.oop3._0abstract._1basic;

/**
 * @description: 在定义抽象方法时,哪些方法不能定义为抽象?
 * @author: wuguidong@cskaoyan.onaliyun.com
 **/

/**
 * 思考:
 * 在定义抽象方法时,哪些方法不能定义为抽象?
 * 抽象方法没有方法体,没有实现,这种方法如果不被继承,不被重写就没有任何意义,
 * 所以任何不能继承,不能重写的方法都是不能声明为抽象的
 * 比如:
 *      1.static方法,不能重写
 *      2.private方法,不能重写
 *      3.final方法,不能重写
 *      4.构造方法,不能继承
 *
 * 抽象方法写出来就是为了继承和重写,它应该鼓励继承并重写,所以用public修饰它
 */
public class Demo2 {
}
abstract class AbstractPhone{
    //public abstract AbstractPhone() {
    //}
    //Illegal combination of modifiers: 'abstract' and 'static'
    //public  abstract static void test(){}
    //
    //private void abstract testPrivate(){}
}